<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::create('education_experiences', function (Blueprint $table) {
            $table->id();
            $table->timestamps();

            // 关联员工
            $table->unsignedBigInteger('employee_id');

            // 学历信息
            $table->string('education_level', 20); // 学历：primary, junior, senior, college, bachelor, master, doctor
            $table->string('degree', 50)->nullable(); // 学位
            $table->string('major', 100); // 专业
            $table->string('school_name', 200); // 学校名称
            $table->string('school_type', 20)->nullable(); // 学校类型：public, private, international

            // 时间信息
            $table->date('start_date'); // 入学时间
            $table->date('end_date')->nullable(); // 毕业时间
            $table->boolean('is_graduated')->default(true); // 是否毕业

            // 成绩信息
            $table->decimal('gpa', 3, 2)->nullable(); // GPA成绩
            $table->string('gpa_scale', 10)->default('4.0'); // GPA满分
            $table->string('ranking', 50)->nullable(); // 排名
            $table->text('academic_achievements')->nullable(); // 学术成就

            // 证书信息
            $table->string('certificate_number', 100)->nullable(); // 证书编号
            $table->date('certificate_date')->nullable(); // 证书日期
            $table->string('certificate_type', 50)->nullable(); // 证书类型

            // 其他信息
            $table->string('study_mode', 20)->nullable(); // 学习方式：full_time, part_time, distance
            $table->string('location', 100)->nullable(); // 学习地点
            $table->text('courses')->nullable(); // 主要课程（JSON格式）
            $table->text('description')->nullable(); // 描述

            // 验证信息
            $table->boolean('is_verified')->default(false); // 是否验证
            $table->string('verified_by', 100)->nullable(); // 验证人
            $table->date('verified_at')->nullable(); // 验证时间

            // 排序和状态
            $table->integer('sort_order')->default(0); // 排序
            $table->boolean('is_active')->default(true); // 是否有效

            // 索引
            $table->index(['employee_id']);
            $table->index(['education_level']);
            $table->index(['school_name']);
            $table->index(['start_date']);
            $table->index(['end_date']);
            $table->index(['is_verified']);
            $table->index(['is_active']);

            // 外键约束
            $table->foreign('employee_id')->references('id')->on('employees')->onDelete('cascade');
        });
    }

    /**
     * Reverse the migrations.
     */
    public function down(): void
    {
        Schema::dropIfExists('education_experiences');
    }
};
